import { affixProps } from 'element-plus'
import { reactive,ref} from 'vue'
import * as api from "@/api/users.js"



// 校验用户名
export const validateUsername = (rule, value, callback) => {
    // 英文字母，数字，下划线或者短线3-16位
    let reg = /^[a-zA-Z0-9-_]{3,16}$/
    if(reg.test(value)){
      callback()
    }else{
      callback(new Error('用户名3到16位（字母,数字,下划线,短横线）'))
    }
    // console.log(value)
  }
  
  // 校验密码
  export const validatePassword = (rule, value, callback) => {
    if(value){
      let reg = /^[a-zA-Z0-9_-]{3,16}$/
      if(reg.test(value)){
        callback()
      }
      
    }else{
      callback(new Error('密码3到16位（字母,数字,下划线,短横线）'))
    }
  }
  
  
  // 校验验证码
  export const validateCaptcha = (rule, value, callback) => {
    if(value.length<5){
      callback(new Error('验证码不能低于5位'))
    }else{
      callback()
    }
  }

  // 校验规则
  export const rules = reactive({
    username: [{ validator: validateUsername, trigger: 'blur' }],
    password: [{ validator: validatePassword, trigger: 'blur' }],
    captcha: [{ validator: validateCaptcha, trigger: 'blur' }],
  })




  
// 校验手机号
export const validatePhone = (rule, value, callback) => {
  // 英文字母，数字，下划线或者短线3-16位
  let reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
  if(reg.test(value)){
    callback()
  }else{
    callback(new Error('手机号格式不正确'))
  }
  // console.log(value)
}

// 校验验证码
export const validateVerification = (rule, value, callback) => {
  if(value){
    let reg = /^[0-9]{4,6}$/  
    if(reg.test(value)){
      callback()
    }
    
  }else{
    callback(new Error('验证码填写错误'))
  }
}


// 校验规则
export const Smsrules = reactive({
  phone: [{ validator: validatePhone, trigger: 'blur' }],
  verification: [{ validator: validateVerification, trigger: 'blur' }],
})






  /**
 * 
 * @param {Object} formEl 表单的引用对象
 * @param {Function} sucessCallback 表单校验通过的回调函数
 * @param {Function} faildCallback 表单校验失败的回调函数
 */
// 表单提交的时候
export const useSubmitForm = (sucessCallback,faildCallback) => (formEl,captcha,username,password) => {
    if (!formEl) return  
    // console.log(captcha,'2423567')
    // 调用了组件提供的校验方法
    formEl.validate(async (valid) => {

      // console.log(valid,'ftuhujig');
      // 如果所有的表单校验通过，valid就是true，不然就是false
      if (valid) {
        // 验证码登录成功
        // let res = await api.verifyCaptchaApi(captcha)
        // if(!res.data.state){
        //   // 发送登录请求
        //   let data = await api.loginApi(username,password)
        //   if(data.data.state){
        //     console.log(data.data)

        //     let token = ref()
        //     token.value = data.data.token
        //     let roleid = ref()
        //     roleid.value = data.data.userInfo.roleid
        //   }
        // }
          

        
       


        if(sucessCallback){
          sucessCallback()
        }
  
        console.log('submit!')
      } else {
        if(faildCallback){
          faildCallback(false)
        }
        console.log('error submit!')
        return false
      }
    })
  }
  
  